home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AOL File Library: 4,101 to 4,200
/
aol-file-protocol-4400-4101-to-4200.zip
/
AOLDLs
/
ADV - Articles & Misc
/
HUGE Peeks, Pokes, chart & MORE
/
PROGRAMMING.shk
/
PEEKS.AND.POKES
(
.txt
)
next >
Wrap
AppleWorks Document
|
1990-02-17
|
33KB
|
646 lines
O=====|====|====|====|====|====|====|====|====|====|====|====|====|====|====|===
PEEKS
POKES
PROGRAMMING
NOTES
(written for an Apple IIe, but should be indispensible to
all Apple II owners)
Information compiled on AppleWorks by SCOTT TERESI
* = Applesoft BASIC only
** = Integer BASIC only
PEEK and/or POKE address(es) DESCRIPTION
HEX DECIMAL
ZERO PAGE
ADDRESSES $0000.00FF (0-255)
$0.5......0-5......................*....Jump instructions2
$6.9......6-9......................*....Not used>
$0A.0C....10-12....................*....USR jump instruction<
$0D.17....13-23....................*....Flags and countersA
$18.......24............................First track of DOS dataB
$19.......25............................First sector of DOS dataG
$1A.......26............................Number of DOS sectors to loadO
M$1B.......27............................High byte of DOS buffer (low byte is
always 00)F
$1A.1B....26-27.........................DRAW and XDRAW shape pointer9
$1C.......28............................Last color used2
$1D.1F....29-31.........................Not usedM
K$20.......POKE 32,N...(entering TEXT....(N is 0-39; norm is 0) Text window
edgeO
M$21.......POKE 33,N.........restores....(N is 1-40/1-80; norm is 40/80) Text
window
edgeM
K$22.......POKE 34,N......normal text....(N is 0-23; norm is 0) Text window
edgeN
L$23.......POKE 35,N..........window)....(N is 1-24; norm is 24) Text window
bottom
I$24.......36............................Cursor's column position minus 1
(HTAB's place)P
N$25.......37............................Cursor's row location minus 1 (VTAB's
place)D
$25; $FC66; $FC1A; $24..POKE 37,R: CALL -922: CALL -998: POKE 36,CI
G ..(R=row; C=column) Plots cursor
positionO
$26.27....?PEEK(38)+PEEK(39)*256........Address of current low-res cursor rowL
$28.29....?PEEK(40)+PEEK(41)*256........Address of current text cursor rowH
$2A.2B....42-43.........................Row pointer for text scrollingF
$2B.......43............................Last booted slot number * 16I
$2C.......?PEEK(44).....................Last lo-res HLIN right endpointJ
$2D.......?PEEK(45).....................Last lo-res VLIN bottom endpointL
J$2E.......N=PEEK(46)....................If N=15 ($0F) then a lo-res color &
)$block is to be plotted in the lower %
)#half of the screen; if N=240 ($F0) '
)%then it will be plotted in the upper
halfE
$2F.......47............................Sometimes DOS volume number;
$30.......48............................Lo-res color * 17J
H$32.......50............................In N=PEEK(50), the current text #
)!format is INVERSE if N=63 ($3F); &
)$FLASH if N=127 ($7F); and NORMAL if &
)$N=255 ($FF); (also POKE 50,128 will %
make listing and CATALOG invisible)K
I$33.......51............................ASCII character for INPUT prompt '
)%symbol; also, POKEing here sometimes $
defeats "Not Direct Command" errorC
$34.49....52-73.........................Monitor and DOS registersH
F$48.......72............................A POKE here resets the status
register/
$4A.4B....74-75...................**....LOMEM/
$4C.4D....76-77...................**....HIMEML
J$4E.4F....78-79.........................Random number field; for a better
random number generator, use
RND(PEEK(78)+PEEK(79)*256)2
$50.61....80-97....................*....PointersK
$52.......82.......................*....POKE 82,128 makes any command RUNH
F$62.66....98-102........................Result of last-floating point &
multiplication or division operation@
$67.68....103-104.......................Start of BASIC programP
N$69.6A....105-106.......................LOMEM; end of BASIC program and start
of variable spaceF
$6B.6C....107-108.......................Start of defined array spaceD
$6D.6E....109-110.......................End of defined array spaceA
$6F.70....111-112.......................Start of string storage<
$71.72....113-114..................*....Temporary registerO
M$73.74....115-116..................*....HIMEM - 1; highest address available
to BASIC programD
$75.76....117-118.......................Line number being executedK
$77.78....119-120.......................Line number where program stoppedJ
H$79.7A....121-122.......................Address of next statement to be
executed?
$7B.7C....123-124.......................Next DATA line number;
$7D.7E....125-126.......................Next DATA address>
$7F.80....127-128.......................INPUT source pointer,
$81.82....?CHR$(PEEK(129))+CHR$(PEEK(130))C
..Last used variable's nameF
$83.84....?PEEK(131)+PEEK(132)*256......Last used variable's addressC
$85.9C....133-156..................*....General-purpose registers
G*9D.A3....157-163.......................Main floating-point arithmetic
accumulatorL
J$A5.AB....165-171.......................Axilary floating-point arithmetic
accumulatorC
$AC.AE....172-174..................*....General-purpose registers>
$AF.B0....175-176.......................End of BASIC program?
$B1.C8....177-200..................*....Get-character routineF
$C9.CD....201-205.......................Floating point random number@
$CE.CF....206-207.................**....Arithmetic accumulatorN
$D0.DF....208-223.......................BASIC scratch registers and pointersL
$D4.......212...........................Returns error cord flag in decimalK
I$D6.......214.....................**....RUN flag (POKE 214,255 makes any $
)"command run a program; POKE 214,0
restores the functions)P
N$D8.......216...........................ONERR flag (if PEEK (216)=127 then an !
error has occurred; POKE 216,0
cancels ONERR function)K
$DA.DB....L=PEEK(218)+PEEK(219)*256.....Line number last error occured in=
$DC.DD....?PEEK(220)+PEEK(221)*256......ONERR error addressL
$DE.......?PEEK(222)....................ONERR error code (see table below)9
$E0.E1....?PEEK(224)+PEEK(225)*256..*...X of last HPLOT9
$E2.......?PEEK(226)...............*....Y of last HPLOT2
$E3.......227...........................Not usedN
L$E4.......228......................*....N=PEEK(228) returns the HCOLOR code &
)$which is 0 if N=0; 1 if N=42 ($2A); '
)%2 if N=85 ($55); 3 if N=127 ($7F); 4 &
)$if N=128 ($8F); 5 if N=170 ($AA); 6 &
if N=213 ($D5); and 7 if N=255 ($FF)K
I$E6.......230......................*....A 32 ($20) in this address means #
)!hi-res page 1 is being shown; 64 #
($40) = page 2; 96 ($60) = page 3/
$E7.......231......................*....SCALEC
$E8.E9....232-233..................*....Shape table start addressN
L$EA.......N=PEEK(234)..............*....If N=0 then last XDRAW started at a
non-black hi-res point2
$EB.EF....235-239.......................Not usedO
M$F1.......241......................*....256 minus the current SPEED; to find
the speed, use this formula:
SPEED=256-PEEK(241)C
$F2.F8....242-248..................*....General-purpose registersN
L$F3.......243......................*....FLASH mask (POKE any number here to
make listings unreadable)N
L$F9.......249......................*....ROT (0-64 = 0-360 degrees, 32 = 180
degrees)2
$FA.FF....250-255.......................Not used
MONITOR VARIABLES/VECTORS;
PAGE 1/PAGE 2 TEXT/GRAPHICS
ADDRESSES $0300.0C00 (768-3072)
$320.321....800-801.....................Hi-res graphics horizontal coordinateD
$322........802.........................Hi-res vertical coordinateI
$324.325....804-805.....................Starting address of shape table6
$32C........812.........................Hi-res colorM
K$3D0.$3D2...976-978.....................Jump vector to DOS warm start (JMP
$9DBF)5
$3D2........?(PEEK(978)+35)/4;"K".......Memory leftM
K$3D3.3D5....979-981.....................Jump vector to DOS cold start (JMP
$9D84)O
M$3D6.3D8....982-984.....................Jump vector to DOS File Manager (JMP
$AAFD)I
$3D9.3DB....985-987.....................Jump vector to RWTS (JMP $B7B5)L
J$3DC.3E2....988-994.....................Subroutine to locate file manager "
PARM list (LDA $9D0F; LDY $9D0E)N
L$3E3.3E9....995-1001....................Subroutine to locate RWTS PARM list
(LDA $AAC2; LDY $AAC1; RTS)I
G$3EA.3EE....1002-1006...................Jump to replace DOS intercepts "
subroutine (JMP $A851; NOP; NOP)O
M$3EF.3F1....1007-1009...................Jump vector to Autostart BRK Handler
(JMP $FA59)N
L$3F2.3F4....1010-1012...................<Control-Reset> vector (JMP $9DBF); &
)$type address to JMP to at addresses &
)$1010-1011 ($3F2.3F3), and then CALL
-1169 to set address 1012N
L (POKE 1010,102: POKE 1011,213: POKE %
1012,112 makes <Control-Reset> RUN;M
K POKE 1010,105: POKE 1011,255: POKE &
)$1012,90 messes up CATALOG and makes
<Control-Reset> return to the
monitor;H
F POKE 592,0: POKE 1012,0 makes
<Control-Reset> boot;L
J POKE 592,255: POKE 1010,191: POKE "
) 1011,157: POKE 1012,56 restores $
<Control-Reset>'s normal function)F
$3F4....................................Power-up byte ($3F3 EOR $A5)M
K$3F5.3F7....1013-1015...................Ampersand ("&") vector (JMP $FF58) &
)$(POKE 1014,165: POKE 1015,214 makes
"&" LIST;M
K POKE 1014,110: POKE 1015,165 makes
"&" CATALOG;P
N POKE 1014,18: POKE 1015,217 makes "&"
RUN)F
$3F8.3FA....1016-1018...................Control-Y vector (JMP $FF65)M
K (POKE 1016,76: POKE 1017,208: POKE #
)!1018,3 makes <Control-Y> JuMP to
address $03D0 (address 976)
(JuMP=76, 03=3, D0=208);L
J POKE 1016,76: POKE 1017,105: POKE '
)%1018,255 makes <Control-Y> enter the
monitor)D
$3FB.3FD....1019-1021...................Jump vector to NMI handler@
$3FE.3FF....1022-1023...................Vector for IRQ handlerK
I$57B........1403........................Cursor's column position minus 1 "
(HTAB's place) in 80-column modeI
G$778........1912+SLOT...................Linefeed enable, disable (POKE %
)#1912+SLOT,1 on Apple Parallel Card
will enable linefeed; POKE $
1912+SLOT,0 will disable linefeed)P
N$801........2049........................POKE 2049,1 makes first BASIC program
line list repeatedly
HEXADECIMAL NEGATIVE DECIMAL POSITIVE DECIMAL
DOS LOCATIONS
WITH DOS 3.3 LOADED INTO MEMORY
ADDRESSES $9600.BFFF (38400-49151) (-27136 TO -16385)
$9D01; $A7D4..-25343;-22572.......POKE 40193,PEEK(40193)-N:CALL 42964P
N ..Moves DOS buffers down N*256
bytesP
N$9E42.........-25022..............40514..........Greeting program run flag (a
value of 20 will make DOS
3.3 EXECute the greeting
program; a value of 52
makes DOS 3.3 BRUN it.)G
E$A545.........-23227..............42309..........POKE 42309,96 kills
INITialize commandB
$A56E.........-23168..............42350..........CATALOG routineI
G$A710.A712....-22768 TO -22766....POKE 42768,234: POKE 42769,234: POKE
42770,234I
G ..Cancels all DOS error
messagesP
N$A884.A907....-22396 TO -22265....43140-43271....DOS 3.3 commands (on track 1
sectors 7-8 on normal DOS
3.3 disk)J
H$A972.AA3E....-22158 TO -21954....43378-43582....DOS 3.3 error messages
(track 1 sectors 8-9 on
normal DOS 3.3 disk)A
$AA57.........-21929..............43607..........MAXFILES value@
$AA60; $AA61..-21920; -21919......?PEEK(43616)+PEEK(43617)*256D
..Last BLOAD lengthK
$AA68.........-21912..............43624..........Active disk drive numberE
$AA6A.........-21910..............43626..........Active slot number@
$AA72; $AA73..-21902; -21901......?PEEK(43634)+PEEK(43635)*256C
..Last BLOAD startI
$AAB1.........-21839..............43697..........MAXFILES default valueO
M$AAB2.........-21838..............43698..........Control-D command character
(POKE 43698,N makes CHR$(N)
replace CHR$(4))B
@$AAB6.........-21834..............43702..........BASIC flag (in
N=PEEK(43702), if N=0
you're in INT BASIC; if
N=64, FP ROM; if N=128, FP
RAM)N
L$AC01.........-21503..............44033..........CATALOG track number (POKE
44033,0 returns an I/O
error when CATALOG is
entered; POKE 44033,17
returns back to normal)O
M$ADA4.........-21084..............44452..........Number of file names before
catalog listing pauses plus
one (see address 44605)G
E$ADAC; $ADAD..-21076; -21075......44460-44461....POKE 44460,88: POKE
44461,252 clears screen
before catalogI
$ADC0.ADC2; BB69.BB8F; B3AF.B3BA..44480-44482; 47977-48015; 45999-46010L
J ..To change VOLUME #xxx to
SECTORS FREE =xxx then
enter this while in the
monitor:8
ADC0: 20 69 BAO
M BB69: A9 00 85 40 85 41 A0
C8 18 B9 F2 B3 F0 0E
0A 90 FB 48 E6 40 D0
02 E6 41 68 18 90 F0
88 D0 E9 A6 40 A5 41
20 24 ED 60O
M B3AF: A0 BD A0 D4 C3 C5 D3
A0 C5 C5 D2 C62
F$ADD9; $ADDA..-21031; -21030......44505-44506....POKE 44505,234: POKE
44506,234 shows deleted
files in catalogN
L$AE17.........-20969..............44567..........Number of characters minus
one in CATALOG file nameH
F$AE22.AE24....-20958 TO -20956....44578-44580....POKE 44578,234: POKE
44579,234: POKE 44580,234
cancels carriage returns
after catalog file namesH
F$AE34.AE36....-20940 TO -20938....44596-44598....POKE 44596,234: POKE
44597,234: POKE 44598,234
cancels catalog pauseH
F$AE37.AE38....-20937 TO -20936....44599-44600....POKE 44599,234: POKE
44600,234 waits for
keypress after each catalog
file (to get back to
normal, POKE 44599,208:
POKE 44600,8)O
M$AE3D.........-20931..............44605..........Number of file names before
catalog pause (POKE
44452,N+1: POKE 44605,N
allows N file names before
the pause)J
H$B201.B203; BA69.BA75..-19967 TO -19965; -17815 TO -17803..45569-45571;
47721-47733O
M ..For DOS wildcard using "=",
enter this while in the
monitor:8
B201: 4C 71 BAO
M BA69: E8 B1 42 DD C6 B4 D0
0A C8 C0 1E D0 F3 AE
9C B3 18 60 C9 AD F0
F7 4C 0B B22
$B3A7.B3AE....-19545 TO -19538....45991-45998....File-type codesO
M$B3AF.B3BA....-19537 TO -19526....45999-46010....Current disk volume heading
spelled backwards (track 2
sector 2 on regular DOS 3.3
disk)M
$B3C1.........-19519..............?PEEK(46017)...Current disk volume numberO
M$B3F0.........-19472..............N=PEEK(46064)..Number of sectors per track
on current disk (if N=13,
then the DOS being used is
3.2; if N=16, then 3.3)O
M$B96A.........-18070..............47466..........If PEEK(47466) returns 150,
then DOS 3.3 is in memoryL
J$BA01.........-17919..............47617..........A POKE of 12 here speeds
disk drive accessH
F$BFD3.BFD5....-16429 TO -16427....49107-49109....POKE 49107,234: POKE
49108,234: POKE 49109,234
prevents any language card
reload
DOS LOCATIONS
WITH PRODOS LOADED INTO MEMORY
ADDRESSES $9600.BFFF (38400-49151) (-27136 TO -16385)
F$B878.B8E8....-18312 TO -18200....47224-47336....ProDOS Version 1.1.1
commands (track $10, sector
$7 on normal ProDOS disk)E
$BE3C.........-16836..............48700..........Active slot numberK
$BE3D.........-16835..............48701..........Active disk drive numberP
N$BEB7.........-16713..............48823..........A 33 or a 1 in this location
means that the file just
VERIFYed was locked
$BED7; $BED8..-16681; -16680......?PEEK(48855)+PEEK(48856)*256K
..Last BLOAD start address@
$BED9; $BEDA..-16679; -16678......?PEEK(48857)+PEEK(48858)*256D
..Last BLOAD length<
$BF90.........-16496..............49040..........Day/month7
$BF91.........-19495..............49041..........Year9
$BF92.........-16494..............49042..........Minute7
$BF93.........-16493..............49043..........Hour
INPUT/OUTPUT/PERIPHERAL CARDS
ADDRESSES $C000.CFFF (49152-53247) (-16384 TO -12289)
$C000.C00F....-16384 TO -16369....K=PEEK(49152)-128 TO K=PEEK(49167)-128J
H ..All PEEKs in this area
achieve the same result:
ASCII code for the last
keypress; if K<0 then no
key was pressedK
I$C00A.........-16374..............49162..........POKE 49162,0 allows the
functions of an 80-column
card (except 80-columns) on
an Apple IIe3
$C010.C01F....-16368 TO -16353....49168,0-49183,0J
H ..All POKEs in this area
achieve the same result:
clear keyboardJ
H$C020.C02F....-16352 TO -16337....49184-49199....All PEEKs in this area
achieve the same result: a
single click at cassette
OUT jackJ
H$C030.C03F....-16336 TO -16321....49200-49215)...All PEEKs in this area
achieve the same result: a
single click at speakerG
$C040.C04F....-16320 TO -16305....49216-49231....Utility stobe outputJ
$C050.C057....-16304 TO -16297....49232-49239....Soft (display) switchesL
$C058.C07F....-16296 TO -16257....49240-49279....I/O status for controllerG
$C058.C05F....-16296 TO -16289....49240-49247....Game paddle commands7
$C061+P.......-16287+P............N=PEEK(49249+P)-128L
J ..(P can be 0, 1, or 2) If
N>127 then paddle button #P
is being pressed or is not
connected (paddle button #0
= Open Apple key; #1 =
Solid Apple key; #2 = Shift
key)O
$C0E8.........-16152..............POKE 49384,0...Stops motor at disk drive #1N
L$C0E9.........-16151..............POKE 49385,0...Starts motor at disk drive
$C0F8.........-16136..............POKE 49400,0...Stops motor at disk drive #2N
L$C0F9.........-16135..............POKE 49401,0...Starts motor at disk drive
$C100.C1FF....-16128 TO -15873....49408-49665....Peripheral slot #1 ROMI
$C200.C2FF....-15872 TO -15617....49664-49921....Peripheral slot #2 ROMI
$C300.C3FF....-15616 TO -15361....49920-50177....Peripheral slot #3 ROMI
$C400.C4FF....-15360 TO -15105....50176-50433....Peripheral slot #4 ROMI
$C500.C5FF....-15104 TO -14849....50432-50689....Peripheral slot #5 ROMI
$C600.C6FF....-14848 TO -14593....50688-50945....Peripheral slot #6 ROMI
$C700.C7FF....-14592 TO -12289....50944-51199....Peripheral slot #7 ROM
APPLESOFT ROM
ADDRESSES $D000-$F7FF (53248-63487) (-12288 TO -2049)
$D0D0.D25E....-12080 TO -11682....53456-53854....Applesoft BASIC commandsI
G$D260.D362....-11680 TO -11422....53856-54114....Applesoft BASIC error
messagesG
E$DCDF.DCF6....-8993 TO -8970......56543-56566...."Extra Ignored" and
"Reenter" messages
MONITOR ROM
ADDRESSES $F800-$FFFF (63488-65535) (-2048 TO -1)
$FBB3; $FBC0..-1101; -1088........A=PEEK(64435): B=PEEK(64448)K
I ..If A=6 and B=0 then the
computer being used is an
Apple IIc; if A=6 and B>223
and B<240 then it's a IIe;
if A=234 then it's a II+;
otherwise, it's an Apple IIO
M$FD83.........-637................A=PEEK(64899)..If A=255 then Apple IIe; if
A=223 then Apple II or II+;
if A=234 then Franklin AceN
L$FF0A.FF12....-246 TO -238........65290-65298....Top of screen heading when
computer is booted
M_____________________________________________________________________________$
__________________________________
MACHINE LANGUAGE SUBROUTINES
(CALLS)
HEX + CALL - DESCRIPTION
$3D0.....976...........-64560....Enters BASIC from monitor or mini-assembler?
$3D2.....978......CALL -64558....Reconnects DOS 3.3 or ProDOS:
$3D9.....985......CALL -64551....Makes a cow sound (moo);
$3EA.....1002.....CALL -64534....Reconnects DOS I/O hooks7
$3F2.....1010.....CALL -64526....Control-Reset vector9
$3F5.....1013.....CALL -64523....Ampersand ("&") vector3
$3F8.....1016.....CALL -64520....Control-Y vectorI
$803.....2051.....CALL -63485....Enters the mini-assembler from monitorJ
H$1300....4864.....CALL -60672....Executes a BASIC program compiled with
"Einstein Compiler"5
$9DBF....40383....CALL -25153....Reconnects DOS 3.3+
$A56E....42350....CALL -23168....CATALOGs2
$C030....49200....CALL -16336....Toggles speaker
APPLESOFT ROM
ADDRESSES $D000-$F7FF (53248-63487) (-12288 TO -2049)
$D1FC....53756....CALL -11780....Hi-res "Find" or position>
$D2C9....53961....CALL -11272....Hi-res "Find" or background=
$D331....54065....CALL -11471....Hi-res graphics background/
$D33A....54074....CALL -11462....Hi-res DRAW10
$D3B9....54201....CALL -11335....Hi-res SHLOADO
M$D683....54915....CALL -10621....Clears any incompleted FOR...NEXT loops and #
any GOSUBs that were not RETURNed2
$DAFB....56059....CALL -9477.....Carriage returnI
$E000....57344....CALL -8192.....Resets Integer BASIC; clears variables5
$E04B....57419....CALL -8117.....Integer BASIC LISTO
$E484....58500....CALL -7036.....Perform Applesoft garbage collection routine&
$E5AD....58797....CALL -6739.....NEW>
$E5B7....58807....CALL -6729.....PLOTs a point on the screen6
$E836....59446....CALL -6090.....Integer BASIC CHAIN4
$EFEC....61420....CALL -4116.....Integer BASIC RUN?
$F07C....61564....CALL -3972.....Integer BASIC LOAD from tape1
$F0E0....61664.........-3872.....Leaves monitor9
$F123....61731....CALL -3805.....DRAWS predefined shape5
$F14F....61775....CALL -3761.....Plots hi-res point>
$F171....61809....CALL -3727.....Turn on Integer BASIC TRACE?
$F176....61814....CALL -3722.....Turn off Integer BASIC TRACE4
$F30A....62218....CALL -3318.....Integer BASIC CON3
$F317....62231....CALL -3305.....Applesoft RESUMEJ
H$F328....62248....CALL -3288.....Clears error-handling information when
RESUME is not used to exit an
error-handling routine'
$F3DE....62430....CALL -3106.....HGRsJ
$F3E4....62436....CALL -3100.....Shows hi-res page 1 without clearing it@
$F3F2....62450....CALL -3086.....Clears hi-res page 1 to blackN
$F3F6....62454....CALL -3082.....Clears hi-res page 1 to last color HPLOTtedH
F$F5CB....62923....CALL -2613.....Makes next shape table DRAW or XDRAW ,
"*coordinates appear in addresses $EO, $E1, )
"'and $E2 (see the PEEKS AND POKES table
above)7
$F666....63078....CALL -2458.....Enter mini-assembler
MONITOR ROM
ADDRESSES $F800-$FFFF (63488-65535) (-2048 TO -1)
H$F800....63488....CALL -2048.....Plots a point after column is set in Y -
"+register, row in accumulator, and color in .
",zero-page address $30; destroys contents of
accumulatorL
J$F819....63513....CALL -2023.....Plots a horizontal line to lo-res screen .
",after setting row to the accumulator, right '
"%endpoint column to address $2C, left .
",endpoint column to Y register, and color to .
",$30; destroys contents of accumulator and Y
registerP
N$F828....63528....CALL -2008.....Plots a vertical line to lo-res screen after &
"$setting column to Y register, upper *
"(endpoint row to the accumulator, bottom ,
"*endpoint row to address $2D, and color to '
$30; destroys contents of accumulatorG
$F832....63538....CALL -1998.....Clears entire lo-res graphics screenJ
H$F836....63542....CALL -1994.....Clears only graphics portion of lo-res
graphics screenO
M$F838....63544....CALL -1992.....Clears low-res screen from top to specified (
"&row after setting that row value in Y
registerP
N$F83C....63548....CALL -1988.....Clears designated portion of upper left-hand (
"&corner of lo-res screen after setting %
"#right-end column to Y register and
bottom-end row to address $2DK
I$F847....63559....CALL -1977.....Computes address for current lo-res row
value stored in the A register:
$F85F....63583....CALL -1953.....Adds 3 to current COLORI
G$F864....63588....CALL -1948.....Sets lo-res color to the value in the
accumulatorJ
H$F871....63601....CALL -1935.....Returns color code of specified lo-res +
")graphics point; set column to X register -
"+and row to the accumulator; after CALLing, +
the color code will be in the accumulatorJ
H$F940....63808....CALL -1728.....Prints current contents of the Y and X
registers in hexadecimalJ
H$F941....63809....CALL -1727.....Prints current contents of the A and X
registers in hexadecimalL
J$F944....63812....CALL -1724.....Prints current contents of X register in
hexadecimalI
G$F948....63816....CALL -1720.....Prints three successive blanks on the
current text screenP
N$F94C....63820....CALL -1716.....Prints number of successive blanks specified
in X register0
$FA62....64098....CALL -1438.....Pseudo-resets+
$FAA6....64166....CALL -1370.....Re-boots9
$FAD7....64215....CALL -1321.....Displays all registersO
M$FB1E....64286....CALL -1250.....Reads value from game paddle specified in X +
")register; after CALL, value will be in Y
registerI
$FB2F....64303....CALL -1233.....Clears text or low-res graphics screenL
J$FB40....64320....CALL -1216.....Sets the screen to lo-res graphics mode; &
destroys contents of the accumulatorF
$FB4B....64331....CALL -1205.....Sets the normal, 4-line text window@
$FB60....64352....CALL -1184.....Clears screen and ?"Apple..."M
K$FB6F....64367....CALL -1169.....Used to calculate address 1012 ($3F4) for
the <Control-Reset> vectorK
I$FBC1....64449....CALL -1087.....Calculates base address of current text
cursor postionN
L$FBE4....64484....CALL -1052.....Rings bell (some equivalents to CALL -1052 ,
"*are: <Control-G>, ? CHR$(7), ? CHR$(135),
or CALL -198)5
$FBF4....64500....CALL -1036.....Moves cursor right4
$FC10....64528....CALL -1008.....Moves cursor left2
$FC1A....64538....CALL -998......Moves cursor upN
L$FC22....64546....CALL -990......Tabs cursor vertically to row specified in
the accumulator>
$FC2C....64556....CALL -980......Performs an ESCape functionO
M$FC42....64578....CALL -958......Clears text from cursor to bottom of screen *
"((including text on same line as cursor)
(same as <ESC> <F>)K
I$FC58....64600....CALL -936......Clears TEXT screen and HOMEs the cursor &
"$(equivalent of <ESC> <@>); destroys (
contents of accumulator and Y register=
$FC62....64610....CALL -926......Performs a carriage return4
$FC66....64614....CALL -922......Moves cursor downK
I$FC70....64624....CALL -912......Scrolls current text screen up one row; )
"'destroys contents of accumulator and Y
registerO
M$FC9C....64668....CALL -868......Clears text line from cursor to right (same
as <ESC> <E>)O
M$FCA8....64680....CALL -856......WAITs; executes time delay; set delay value *
"((dly) to the accumulator (address 69 or *
"($45) before CALLing; the delay time (in -
"+seconds) can be found using this equation: +
delay=(0.5*(5*(dly*dly)+27*dly+26))/10000J
$FCC9....64713....CALL -823......Writes leader tone to cassette recorderP
N$FD0C....64780....CALL -756......Waits for any keypress; destroys contents of
accumulator and Y registerM
K$FD1B....64795....CALL -741......Waits for a keypress and stores its ASCII '
"%code in the accumulator; also cycles
random-number seed generatorP
N$FD35....64821....CALL -715......Fetches keystoke and stores its value in the
the accumulator@
$FD5A....64858....CALL -678......Waits for a <Return> keypressO
$FD5C....64860....CALL -676......Rings bell and waits for a <Return> keypressP
N$FD67....64871....CALL -665......Issues a line feed, waits for a line of data .
",ending with a <Return> keypress, stores the ,
"*data in the keyboard input buffer, stores -
"+length of line in Y register, and uses the .
",CHR$ of the number stored at address 51 for )
a cursor (cursor symbol can be altered)M
K$FD6A....64874....CALL -662......Same as CALL -665, but does not execute a
line feedJ
H$FD6F....64879....CALL -657......Better input; commas/colons O.K.; this .
",example loads the variable A$ with what was ,
"*put into the Keyboard Input Buffer by the
CALL -657:(
N 10 PRINT "ENTER YOUR NAME (LAST,FIRST):";:
CALL -657O
M 20 A$="": FOR I=512 TO 767: IF PEEK(I) <> (
(&141 THEN A$=A$+CHR$(PEEK(I)-128):NEXT
N$FD75....64885....CALL -651......Same as CALL -662, but does not print prompt .
",character; CALL after setting X register to
$FD8E....64910....CALL -626......Performs a carriage returnK
I$FDA3....64931....CALL -605......Prints hexadecimal of eight consecutive -
"+memory locations, beginning from specified )
"'LSB at address 60 and specified MSB at ,
"*address 61; CALL after setting Y register
to 0L
J$FDB3....64947....CALL -589......Prints range of hexadecimal data for the ,
"*address specified in memory locations $3C .
",and $3D (LSB and MSB, respectively) through ,
"*address specified in memory locations $3E -
and $3F; CALL after setting Y register to 0E
C$FDDA....64986....CALL -550......Prints the current content of the
accumulator in hexadecimalJ
H$FDE3....64995....CALL -541......Prints lower four bits (nibble) of the
accumulatorI
G$FDED....65005....CALL -531......Prints current ASCII character in the
accumulatorL
J$FDF0....65008....CALL -528......Same as CALL -531, except CALL -528 also )
advances cursor to next column positionP
N$FE2C....65068....CALL -468......Memory move; to execute a BASIC memory move, (
"&type this in (where OS and OE are the ,
"*Old-location Start and End, and NS is the *
New Start) and GOSUB 5000 to execute it:(
H 5000 N=OS: LOC=60: GOSUB 5020: N=OE: $
("LOC=62: GOSUB 5020: N=NS: LOC=66:
GOSUB 5020I
G 5010 POKE 768,160: POKE 769,0: POKE %
(#770,76: POKE 771,44: POKE 772,254:
CALL 768: RETURNJ
H 5020 POKE LOC,N-INT(N/256)*256: POKE
LOC+1,INT(N/256): RETURN"
$FE5E....65118....CALL -418......Disassembles 20 instructionsG
E$FE61....65121....CALL -415......Disassembler; POKE start address at
locations 58-59 before CALL*
$FE80....65152....CALL -384......INVERSE)
$FE84....65156....CALL -380......NORMAL.
$FE86....65158....CALL -378......Sets I flag0
$FE89....65161....CALL -375......Sets keyboard1
$FEB0....65200....CALL -336......Jumps to BASIC2
$FEB3....65203....CALL -333......Continues BASIC7
$FEB6....65206....CALL -330......Memory location "Go"G
$FEBF....65215....CALL -321......Displays A, X, Y, P, and S registers9
$FEC2....65218....CALL -318......Performs monitor trace1
$FECD....65229....CALL -307......Writes to tape2
$FEFD....65277....CALL -259......Reads from tapeO
M$FF2D....65325....CALL -211......Rings bell and ?"ERR"; destroys contents of
accumulator and Y registerI
G$FF3A....65338....CALL -198......Rings bell without printing a control
character4
$FF3F....65343....CALL -193......Monitor "RESTORE"3
$FF44....65348....CALL -188......Monitor "RESTR1"1
$FF4A....65354....CALL -182......Monitor "SAVE"1
$FF4C....65356....CALL -180......Monitor "SAV1"1
$FF59....65369....CALL -167......Enters monitor;
$FF69....65381....CALL -155......Enters monitor with bellP
N$FF69....65385....CALL -151......Enters monitor (<Control-C>, <Return> leaves
the monitor)M
K$FF70....65392....CALL -144......Scans input buffer; here is an example of -
"+how it executes a machine language routine
(not subroutine) from BASIC:(
N 100 A$="300: A9 C1 20 ED FD 18 69 01 C9 DB
D0 F6 60 300G D823G"B
@ 110 FOR X=1 TO LEN(A$): POKE #
511+X,ASC(MID$(A$,X,1))+128: NEXT=
120 POKE 72,0: CALL -144
M_____________________________________________________________________________$
__________________________________